-
Notifications
You must be signed in to change notification settings - Fork 5
Minjeong / 5월 2주차 / 8문제 #208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이번 문제는 시간복잡도가 넉넉해서 상관없긴 하지만,
이 문제는 민정님처럼 for문안에서 입력받기, 단축키 지정 두 가지를 한번에 하는 로직이 더 좋겠네요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 문제에서는 직사각형 블록 외각에만 길이 있기 때문에, 시계 방향과 반시계 방향 두 가지 길만 존재하는 점을 이용하여 두 방향 중 하나를 구하고 블록의 둘레의 50%와 비교하여 정답을 정하는게 핵심이었던 문제 같습니다. 상점과 동근이의 거리를 구할 때, (0,0)을 기준점으로 잡고 블록의 width, height, dist(상점이 기준점에서 떨어진 거리)를 조합하여 푸는 이 부분이 문제의 핵심인 것 같아요.
YoonYn9915
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
한 주 수고하셨습니다!
🔥2025-05 챌린지 진행 상황👉 그래프
👉 구현
|
🔥2025-05 챌린지 진행 상황👉 그래프
👉 구현
|
🌱WIL
발제&과제문제는 "구현"과 관련한 문제였다. 구현 문제는 쉽게만 생각했는데 이번 문제들은 실버1이었음에도 굉장히 애를 먹었다. 조건도 제대로 설정해줘야 했고, 고려해야 할 사항이 많았다. 하지만 정말 중요한 건 문제의 내용을 제대로 파악하고 이해하는 것이었다.발제&과제문제 모두 문제를 대충 읽다가 문제 풀이 중반부에 잘못되었다는 것을 알게 되었다.과제문제의 경우 사각형 경계선을 1차원으로 단순화하는 발상이 인상깊었다. 이렇게 사고할 수도 있구나 알게 되었다.Java로 코테 문제 풀이하는 것을 연습하기 위해스택/큐유형을Java로 푸는 연습을 했다. 초반에는 파이썬에 익숙하다보니 같은 문제더라도 어떻게 구현해야 할 지 감이 아예 오지 않았다. 문제를 풀이하면서import java.util.*;를 해야 한다는 점, 타입을 매번 지정해줘야 한다는 점, 파이썬이랑 함수가 다르다는 점, Array와 ArrayList의 함수가 다르다는 점, ArrayList로 한 후 다시 Array로 형태를 바꾸는 코드를 꼭 추가해야 한다는 점, DTO를 활용한다는 점 등등 정말 기본적인 문법들을 문제를 풀이하면서 익히게 되었다.🚀주간 목표 문제 수: 3개
백준 #2512. 예산: 이분탐색 / 실버2
정리한 링크: (바로가기)
🚩플로우 (선택)
N(지방 수), 각 지방의 예산 요청 리스트(budgets) 입력M입력M이하이면 최대 요청값 출력left = 0,right = max(요청)mid = (left + right) // 2total = sum(min(b, mid) for b in budgets)total ≤ M이면answer = mid,left증가total > M이면right감소answer출력🚩제출한 코드
💡TIL
매개변수 탐색을 연습하기 위해 해당 문제를 풀이했다. 하지만 도저히 어떻게 풀이해야 할 지 감이 오지 않아 결국 힌트를 보게 되었다.매개변수 탐색은 마치 DP처럼 구해야 하는 답을 left/right/mid로 두어 설정한다는 점을 발견했다. 문제를 조금 더 단순화하면 단순하게 접근해낼 수 있겠다는 생각을 하게 되었다.프로그래머스 #42577. 전화번호 목록: 문자열 / Level2
정리한 링크: (바로가기)
🚩플로우 (선택)
i)값과 그 다음 위치(i+1)값을 차례로 비교하면서, 다음 위치 값이 현재 위치 값의 앞부분에 해당 문자열이 포함되어있는지 확인한다.false, 포함되어있지 않다면true를 반환한다.🚩제출한 코드
💡TIL
import java.util.*;추가해놓기!프로그래머스 #12909. 올바른 괄호: 스택큐 / Level2
정리한 링크: (바로가기)
🚩플로우 (선택)
(→ push)→ 비어있으면 false, 아니면 poptrue, 아니면false🚩제출한 코드
💡TIL
String을 List로 변환하려고 asList()함수를 썼는데 적절하지 않은 선택이었다. 예를 들어 “()()”의 경우 [(, ), (, )]로 저장되어야 하는데 [”()()”] 으로 저장되게 된다.
또 자바에는
java.util.Stack패키지가 있어서 여기서 제공해주는 스택 관련한 함수를 바로 써도 된다는 것을 알게 되었다.ArrayList가 헷갈렸는데Stack으로 배열 만들고push,pop,isEmpty함수를 바로 쓰게 되어 훨씬 간편하게 코드를 짤 수 있을 것 같다.프로그래머스 #42586. 기능개발: 스택큐 / Level2
정리한 링크: (바로가기)
🚩플로우 (선택)
각 기능의 남은 일수를 구한다.
남은일수 = ceil((100 - 현재진도) / 속도)큐에 일수를 넣어가며 다음 기능의 배포 여부를 판단한다.
앞 기능보다 일수가 작거나 같으면 같은 날 배포 (카운트 증가).
더 크면 이전 배포를 끝내고 새로운 배포 시작.
🚩제출한 코드
💡TIL
프로그래머스 #42587. 프로세스: 스택큐 / Level2
정리한 링크: (바로가기)
🚩플로우 (선택)
DTO클래스 정의 (index + priority)queue에 DTO 삽입pq에 priority 삽입pq.peek()과 비교location이면 반환🚩제출한 코드
💡TIL
DTO를 사용할 수 있다는 것을 알게 되었다.Queue와 마찬가지로 우선순위 큐 (PriorityQueue) 클래스가 존재한다.Queue나PriorityQueue에서 사용되는 함수가 헷갈린다. 꼭 기억하자offer()poll()peek()백준 #1283. 단축키 지정: 구현 / 실버1
정리한 링크: (바로가기)
🚩플로우 (선택)
N을 받는다.shortcut_key집합을 만들어 단축키 등록 현황을 저장한다.option) 문장을 공백 기준으로 나눈다.[ ]로 감싼 값을 return 한다.[ ]로 감싼 값을 return 한다.🚩제출한 코드
💡TIL
문제의 조건을 정확히 판단**해야 한다. 문제를 대충 읽고 접근하여 풀이 중반부가 되어서야 잘못된 방향으로 가고 있었다는 것을 알게 되었다.백준 #2564. 경비원: 구현 / 실버1
정리한 링크: (바로가기)
🚩플로우 (선택)
perimeter = 2 * (w + h)로 구한다.(dir, dist)형태로 입력받는다.to_pos()함수를 통해 모두 1차원 좌표로 변환한다.min(정방향 거리, 역방향 거리)로 계산한다.🚩제출한 코드
💡TIL
abs 차이와perimeter - 차이중 최소값만 비교하면 된다.프로그래머스 #12906. 같은숫자는싫어: 스택큐 / Level1
정리한 링크: (바로가기)
🚩플로우 (선택)
arr에서 첫 값을answer리스트에 추가한다.answer에 추가한다.🚩제출한 코드
💡TIL
ArrayList를Array로 변환할 때 자꾸만 헷갈려서 문제 풀이에 어려움을 겪는다. 앞으로는 아래 내용은 아예 외워두어야겠다.type을 꼭 써줘야 한다.get함수를 써야 한다.스택/큐 섹션에 있던 문제였는데 왜 스택인지 이해를 못했다. 하지만 다른 분의 풀이를 보며 Stack 클래스를 이용해서 충분히 풀 수 잇다는 것을 알게 되었다.